/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.hamacekj.geometr;

import cz.hamacekj.geometr.plugin.InputParametersInterface;
import cz.hamacekj.geometr.plugin.ValueArgument;

/**
 * Událost, která je vyvolána když uživatel vytvořil nový objekt v UI.
 * @author hamacekh
 */
public class ConstructObjectEvent {

    public ConstructObjectEvent(String name, String parametersCaption, ValueArgument[] valueArguments, String[] objectArguments) {
        this.name = name;
        this.parametersCaption = parametersCaption;
        this.valueArguments = valueArguments;
        this.objectArguments = objectArguments;
    }
    
    /**
     * Vrátí jméno pluginu, který vyvolal nový objekt.
     * @return Jméno pluginu.
     */
    public String getName(){
        return this.name;
    }
    
    /**
     * Vrátí nadpis typu parametrů, který vyvolal nový objekt.
     * @return Nadpis typu parametrů.
     */
    public String getParametersCaption(){
        return this.parametersCaption;
    }
    
    /**
     * Vrátí pole {@link cz.hamacekj.geometr.plugin.ValueArgument ValueArgument}
     * zadané uživatelem, které ještě nemají vyplněné reálné hodnoty.
     * @return Pole argumentů.
     */
    public ValueArgument[] getValueArguments(){
        return this.valueArguments;
    }
    
    /**
     * Vrátí pole názvů objektů, které zadal uživatel.
     * @return Pole názvů objektů.
     */
    public String[] getObjectArguments(){
        return this.objectArguments;
    }
    
    /** Jméno typu objektu, který má být vytvořen. */
    private String name;
    
    /** Typ parametrů, který byl vytvořen. Odpovídá {@link InputParametersInterface#getParametersCaption() InputParemeters.parametersCaption}. */
    private String parametersCaption;
    
    /** Argumenty hodnot předané ve vytvářecí řádce. */
    private ValueArgument[] valueArguments;
    
    /** Argumenty objektů předané ve vytvářecí řádce. */
    private String[] objectArguments;
}
